package com.dog.basics.service.mtkj;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dog.basics.bean.dto.admin.mtkj.AdminShopBlEditDto;
import com.dog.basics.bean.dto.admin.mtkj.ShopListDto;
import com.dog.basics.bean.dto.api.mtkj.ApiShopAddDto;
import com.dog.basics.bean.dto.api.mtkj.ApiShopEditDto;
import com.dog.basics.bean.dto.api.mtkj.ApiShopFromDto;
import com.dog.basics.bean.dto.api.mtkj.ApiShopListDto;
import com.dog.basics.bean.model.mtkj.MtShopping;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.basics.bean.vo.admin.mtkj.ShopListVo;
import com.dog.basics.bean.vo.admin.mtkj.ShoppingVo;
import com.dog.basics.bean.vo.api.mtkj.ApiAddShopingCheckVo;
import com.dog.basics.bean.vo.api.mtkj.ApiShoppingFromVo;
import com.dog.basics.bean.vo.api.mtkj.ApiShoppingVo;
import com.dog.basics.common.util.PageParam;


/**
 * <p>
 * 店铺信息 服务类
 * </p>
 *
 * @author wph
 * @since 2020-11-09
 */
public interface IMtShoppingService extends IService<MtShopping> {

    /**
     * admin服务
     *  分页查询店铺列表
     * @param page
     * @param dto
     * @return
     */
    IPage<ShopListVo> findShopByAdmin(PageParam page, ShopListDto dto);

    /**
     * admin服务\
     *  删除店铺
     * @param: id
     * @returns
     * @author hangdy
     * @date: 2020/11/14 11:50
     */
    Boolean adminDeleteShop(Long id);

    /**
     * admin服务
     *  根据id查询商铺详情
     * @param:
     * @returns
     * @author hangdy
     * @date: 2020/11/14 12:01
     */
    ShoppingVo adminShippingById(Long id);

    /**
     * 根据id获取商铺信息
     * @param id
     * @return
     * @author hangdy
     */
    ApiShoppingVo findShoppingById(Long id);

    /**
     * 根据id获取商铺信息
     * @param id
     * @return
     * @author hangdy
     */
    ApiShoppingVo findShoppingByUserId(Long userId);

    /**
     * 搜索店铺
     *      1.根据商铺名称进行查询
     * @param: page
     * @param: goodFromDto
     * @returns 分页信息
     * @author hangdy
     * @date: 2020/11/12 10:34
     */
    IPage<ApiShoppingFromVo> getPageList(PageParam page, ApiShopListDto shopListDto, boolean needStatus, Integer status);

    /**
     * 根据经纬度获取附近商家
     * @param page
     * @param shopFromDto
     * @return
     * @author hangdy
     */
    IPage<ApiShoppingFromVo> nearbyShops(PageParam page, ApiShopFromDto shopFromDto);

    /**
     * 新增店铺
     * @param shopAddDto
     * @return
     * @author hangdy
     */
    Boolean saveShop(ApiShopAddDto shopAddDto);

    /**
     * 修改店铺
     * @param shopEditDto
     * @return
     * @author hangdy
     */
    Boolean editShop(ApiShopEditDto shopEditDto);

    /**
     * 删除店铺
     * @param id
     * @return
     * @author hangdy
     */
    Boolean deleteShop(Long id);

    /**
     * 保存收款二维码地址
     * @param shopId
     * @param url
     * @return
     */
    Boolean upQRCode(Long shopId, String url);

    /**
     * 审核店铺
     * @param shopId
     * @param checkStatus
     * @return
     */
    Boolean checkShop(Long shopId, Integer checkStatus);

    /**
     * 检查用户是否可以申请店铺
     * @param:
     * @returns
     * @author hangdy
     * @date: 2020/11/20 10:48
     */
    ApiAddShopingCheckVo checkUserAddShop();
    /**
     * 修改店铺分润比例
     * @return
     */
    Boolean editObj(AdminShopBlEditDto obj);

}
